Skip to content

Conversation

@NikolaMilosavljevic
Copy link
Member

@NikolaMilosavljevic NikolaMilosavljevic commented Jun 22, 2020

This change adds arm64 Wix support for Shared FX in Arcade, it allows other repos to build arm64 MSIs and Burn bundles. No additional changes are needed for dotnet/runtime and dotnet/windowsdesktop repos, besides picking up a new version of Arcade, that includes this change.

This fixes dotnet/runtime#1529 and expands further on the original plan. We will produce native arm64 MSI, and EXE, packages.

Arm64 requires v5.0 of Windows Installer schema - https://docs.microsoft.com/en-us/windows/win32/msi/using-64-bit-windows-installer-packages

Schema for other architectures is unchanged (v2.0) to allow installation on the same supported set of OS targets.

@hoyosjs
Copy link
Member

hoyosjs commented Jun 22, 2020

cc: @tommcdon

Copy link
Member

@dagood dagood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, with one suggestion.

@jkoritzinsky
Copy link
Member

I'll need to make sure to port this over to the new Shared Framework SDK that I'm working on.

@tommcdon
Copy link
Member

ARM64 MSI testing complete and signing off. Thank you Nikola!

@NikolaMilosavljevic NikolaMilosavljevic merged commit da6fee8 into dotnet:master Jun 27, 2020
jkoritzinsky added a commit to jkoritzinsky/arcade that referenced this pull request Jun 29, 2020
ViktorHofer pushed a commit that referenced this pull request Oct 9, 2020
… frameworks (#5714)

* Version 5.0.0-dev.20326.3

* Port #5688 to the new SDK.

* Update readme with documentation of the shared framework generation. Installer and bundle generation docs still TBD.

* Add back feature that was somehow lost in the rebase.

* Add basic docs for the installer builds.

* Finish documentation.

* Update host file names to be overridable to support the crossgen2 pack.

* Fix GeneratedBuildFile check in GenerateSharedFrameworkDepsFile

* Split out the archive targets from the sharedfx targets so installer-only projects can also generate archives.

* Fix error condition.

* Version 5.0.0-dev.20365.8

Add PackageTargetOS property for the dotnet-runtime-deps packages to hook in to.

* Only include runtime files in the deps file (not tool files or crosstargeting files).

* Exclude PackOnly=true files from the deps file. They won't be available on disk.

* Fix NuGet package type.

* Remove important parameter from error tasks.

* Allow files to be individually opted-out of being added to the deps file and platform manifest via the ExcludeFromDataFiles metadata. This should only be used for text files (such as native header files) that are included in packs but are never resolved by the hosting or sdk layers.

* Reduce copying and enable empty installers for linux.

* Better handle GenerateInstallers=false when building linux packages.

* Enable overriding the package id for shared framework packages.

* Add OverridePackageId property to avoid colliding with built-in NuGet properties that infer the package id.

* Fix bad condition for PackageId.

* First pass moving the installer and bundle infrastructure out of Microsoft.DotNet.SharedFramework.Sdk and into Microsoft.DotNet.Build.Tasks.Installer.

* Factor out the archive creation targets to a Microsoft.DotNet.Build.Tasks.Archives package.

* Fix installer package layout

* Fix RemoveProperties

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Fix various bugs that crept in during the refactoring.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Fix SkipBuild calculation

* Fix including symbols in the symbols package.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Invoke Pack target as an inner build instead of hooking in via a wrapper around the Build target.

* Clean up the skip build calculations and make them actually work.

* Ensure we respect the SkipBuild property in the archives and installer packages as well.

* Don't reference desktop-only files on the .NET Core build.

* Update READMEs of the three packages to reflect the updated organization.

* Enable overriding host json file location in the package (for crossgen2).

* Implement closure, type, and file version validation.

* PR feedback.

* Comments and var clarification.

* Automatically calculate ignored references for closure validation based on the referenced framework packs. Exclude culture assemblies from closure validation (otherwise we get duplicate assembly names).

* Set SelfContained to true when processing framework references.

* Don't set BuildDependsOn to empty. It breaks packages that hook into it (like the installers and archives packages)

* Use System.Reflection.Metadata to get the assembly name to ensure .NETFX compat. Use more efficient publicKeyToken-to-string algorithm.

* Rename folder to avoid warning

* Remove unneeded NoWarn

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* React to changes in PrepareForReadyToRunCompilation.

* Fix packaging non RuntimePack shared framework packs in msi installers.

* Enable overriding the targets and tasks for the installer and archives packages like the old system for Microsoft.DotNet.Build.Tasks.SharedFramework.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create x86 installer for win-arm64 runtime, to allow easy install on win-arm64 machines using x86 emulation

6 participants